package com.model;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import com.view.PanelTambahPinjaman;
import java.util.ArrayList;

public class Perpustakaan_1 {
       public static String NAMA= "Perpustakaan Public";
    public static ArrayList <Publikasi> DAFTAR_PUBLIKASI
            = new ArrayList <Publikasi> ();

    public static ArrayList <Anggota> DAFTAR_ANGGOTA
            = new ArrayList <Anggota> ();
    public static ArrayList <Pinjaman> DAFTAR_PINJAMAN
            = new ArrayList<Pinjaman>();

    public static void tambahAnggota (Anggota inAnggota){
        DAFTAR_ANGGOTA.add(inAnggota);}

    public static void tambahPublikasi (Publikasi inPublikasi){
        DAFTAR_PUBLIKASI.add(inPublikasi);}

     public static void tambahPinjaman (Pinjaman pinjaman) {
        DAFTAR_PINJAMAN.add(pinjaman);}

    public static String bacaDaftarPublikasi (){
        if(DAFTAR_PUBLIKASI.isEmpty()== false){
            String hasil=new String();
            for(int i=0; i<DAFTAR_PUBLIKASI.size(); i++){
                hasil += DAFTAR_PUBLIKASI.get(i).getJudul()+"\n";
            }
            return hasil;
    } else{
            return "kosong";
    }
}
    public static String bacaDaftarAnggota (){
        if(DAFTAR_ANGGOTA.isEmpty()== false){
            String hasil=new String();
            for(int i=0; i<DAFTAR_ANGGOTA.size(); i++){
                hasil += DAFTAR_ANGGOTA.get(i).getNama()+"\n";
            }
            return hasil;
    } else{
            return "kosong";
    }
    }

   public static void simpanFilePublikasi() throws IOException {
        FileOutputStream outStream = null;
        if (DAFTAR_PUBLIKASI.isEmpty()){
            JOptionPane.showMessageDialog(null,"Daftar Publikasi Kosong");
        }
    else {

            try {
                File outFile = new File("Publikasi.dat");
                outStream = new FileOutputStream(outFile);
                ObjectOutputStream outObjectStream = new ObjectOutputStream(outStream);
                outObjectStream.writeObject(DAFTAR_PUBLIKASI);
                outStream.close();
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Perpustakaan.class.getName()).log(Level.SEVERE, null, ex);
            }
     }
    }
    public static void bacaFilePublikasi() {
        try {
            FileInputStream inStream = null;
            File inFile = new File("Publikasi.dat");
            inStream = new FileInputStream(inFile);
            ObjectInputStream inObjectStream = null;
            try {
                inObjectStream = new ObjectInputStream(inStream);
                 } catch (IOException ex) {
                Logger.getLogger(Perpustakaan.class.getName()).log(Level.SEVERE, null, ex);
                 }
            try {
                DAFTAR_PUBLIKASI = (ArrayList<Publikasi>) inObjectStream.readObject();
                 } catch (IOException ex) {
                Logger.getLogger(Perpustakaan.class.getName()).log(Level.SEVERE, null, ex);
                 } catch (ClassNotFoundException ex) {
                Logger.getLogger(Perpustakaan.class.getName()).log(Level.SEVERE, null, ex);
                                                }
                 } catch (FileNotFoundException ex) {
                  Logger.getLogger(Perpustakaan.class.getName()).log(Level.SEVERE, null, ex);
                 }
          }


    }
//
//    public static void tambahPinjaman(Pinjaman pinjaman) {
//        throw new UnsupportedOperationException("Not yet implemented");
//    }
//}